iT邦幫忙

2023 iThome 鐵人賽

DAY 9
0
SideProject30

Java Spring + Vue 甘苦學習路 前後端分離之 Blog 實戰系列 第 9

Day 9 Java Spring API 建立 — 根據 id 刪除文章

  • 分享至 

  • xImage
  •  

概述

今天會實作刪除 post 的 API 功能,在 API 路徑的建立時,比較不同的是此次會使用的 @DeleteMapping 這個 annotation。而此次刪除的方式則是會透過 id 來知道要刪除哪一個資料內容。

Service 層

PostService.java 中先定義一個統一的刪除介面,這樣子類別就可以使用繼承的方式。

PostService.java

void deletePostById(long id);

PostServiceImpl.java

繼承了 PostService.java 後,需要在 PostServiceImpl.java 中實作 delete 功能,並使用 postRepository 的 delete function 刪除資料

@Override
public void deletePostById(long id){
        Post post = postRepository.findById(id).orElseThrow(() -> new ResourceNotFoundException("Post","id",id));
        postRepository.delete(post);
    }

Controller 層

透過 @DeleteMapping 的注釋將 HTTP DELETE 請求映射到特定的處理程序方法。

這個注釋是 @RequestMapping(method=RequestMethod.DELTE) 的快捷方式。

@DeleteMapping("/{id}")
    public ResponseEntity<String> deletePost(@PathVariable(name="id") long id){
        postService.deletePostById(id);
        return new ResponseEntity<>("Post entity deleted successfully.",HttpStatus.OK);
    }

API 測試

這邊一樣是使用 Postman 來進行 API 刪除功能的測試。

所使用的會是http://localhost:8080/api/posts/{id}

id 為要替換測試的值。

在 Postman 的測試中,會使用 DELETE,按下 Send 後就會刪除設定的 id 資料了!

測試完,可以到資料庫查看是否真的刪除該資料~

關於新增、更新、刪除的 API 建置都已經完成了~

接下來會實作排序、Pagination 等功能,有興趣繼續熟悉做法的夥伴們記得來看喔~

此外,若文中有錯誤之處還請多多包涵與指正,也歡迎在文章下方留言一起討論喔!

明天見~


上一篇
Day 8 Java Spring API 建立 — 更新 Post 的 API
下一篇
Day 10 Java Spring API 實作 — Pagination and 排序 part1
系列文
Java Spring + Vue 甘苦學習路 前後端分離之 Blog 實戰30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言